home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / Projects / Tutorial Material / Zone Tutorial / Structure Examples / 5. Struct3c < prev    next >
Lisp/Scheme  |  1998-10-26  |  1KB  |  53 lines

  1. ;  STRUCT3C - structure study  (melody-led)
  2.  
  3. (setq tonal (activate-tonality (dorian c 4) (pentatonic b& 3)))
  4.  
  5. (setq mel1 (gen-loop '((1 4 2) (5 6 4) (1 6 3))
  6.                      '(a b c d a b)))
  7. (setq mel2 (gen-fibonacci 5 '(a b c d) '(a d c b)))
  8.  
  9. ; Nigel has been using tick value 96 for 1/4 note. 
  10. ; Because Nigel often mixes ticks and ratios, the function must take
  11. ; both cases into account.
  12.  
  13. (defun use-nigel-ticks (l)
  14.   (let (out)
  15.     (dolist (x l)
  16.       (if (is-length-symbol x)
  17.         (push x out)
  18.         (push (* x 5) out)))
  19.     (nreverse out)))
  20.  
  21. (setq rhy1 (use-nigel-ticks (fill-template mel1 '(24 24 -24 24 -48 48))))
  22. (setq rhy2 (use-nigel-ticks (fill-template mel2 '(24 24 48 96 -24 24 48))))
  23.  
  24. (setq zone1 (list (make-zone rhy1)))
  25. (setq zone2 (list (make-zone rhy2)))
  26.  
  27. (setq zones (append zone1 zone2 zone1))
  28. (setq rhys (append rhy1 rhy2 rhy1))
  29. (setq mels (append mel1 mel2 mel1))
  30.  
  31. (def-symbol
  32.    bass mels
  33. )
  34.  
  35. (def-length
  36.    bass rhys
  37. )
  38.  
  39. (def-zone
  40.    bass zones
  41. )
  42.  
  43. (def-tonality
  44.    bass tonal
  45. )
  46.  
  47. (compile-instrument-p "ccl;output:"  "struct3c"
  48.    bass
  49. )
  50.  
  51.  
  52.  
  53.